------------------------------------------------------------------
/* IBDR 2014 – Groupe < 4x4 >									*/
/* Création de la procedure  ps_insertion_conducteur_secondaire	*/
/* Auteur : < Fabry Jules - TA >								*/
/* Testeur : < NOM Prénom - Parcours >							*/
/* Correcteur : DIALLO ABDOUL									*/
/* Intégrateur : < BOULILA Louiza - TA >						*/
------------------------------------------------------------------
USE IBDR_4x4 
GO
IF OBJECT_ID ('dbo.ps_insertion_conducteur_secondaire', 'P') IS NOT NULL
	DROP PROCEDURE dbo.ps_insertion_conducteur_secondaire;
GO

CREATE PROCEDURE dbo.ps_insertion_conducteur_secondaire(
	@nom NVARCHAR(40) ,
	@prenom NVARCHAR(40) ,
	@daten DATETIME)
AS

BEGIN
	IF @nom LIKE '' OR @nom IS NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @prenom LIKE '' OR @prenom IS NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @daten=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END

	IF NOT EXISTS(
	SELECT * 
	FROM ConducteurSecondaire cs
	WHERE cs.daten=@daten AND cs.nom=@nom AND cs.prenom=@prenom)
	BEGIN
		INSERT INTO dbo.ConducteurSecondaire
			(
			nom,
			prenom,
			daten
			)
			
			VALUES
			(
			@nom,
			@prenom,
			@daten
			)
		PRINT('Insertion du nouveau conducteur secondaire :');
		PRINT CAST(@Nom AS VARCHAR) + ' ' + CAST(@Prenom AS VARCHAR) + ' né le ' + CAST(@daten AS VARCHAR)
		RETURN 1;
	END
END
GO

------------------------------------------------------------------
/* IBDR 2014 – Groupe < 4x4 >									*/
/* Création de la procedure ps_suppression_conducteur_secondaire*/
/* Auteur : < Fabry Jules - TA >								*/
/* Testeur : < NOM Prénom - Parcours >							*/
/* Correcteur : < NOM Prénom - Parcours >						*/
/* Intégrateur : < BOULILA Louiza - TA >						*/
------------------------------------------------------------------

IF OBJECT_ID ('dbo.ps_suppression_conducteur_secondaire', 'P') IS NOT NULL
	DROP PROCEDURE dbo.ps_suppression_conducteur_secondaire;

GO

CREATE PROCEDURE dbo.ps_suppression_conducteur_secondaire(
	@nom NVARCHAR(40) ,
	@prenom NVARCHAR(40) ,
	@daten DATETIME)
AS

BEGIN
	IF @nom LIKE '' OR @nom=NULL
	BEGIN
		PRINT 'saisie du nom incorecte';
		RETURN 0;
	END
	IF @prenom LIKE '' OR @prenom=NULL
	BEGIN
		PRINT 'saisie du prenom incorecte';
		RETURN 0;
	END
	IF @daten=NULL OR @daten=NULL
	BEGIN
		PRINT 'saisie de la date incorecte';
		RETURN 0;
	END
	/*Suppression du conducteur secondaire de la table de jointure "ConducteursSecondaires" */
	DECLARE @nom_FK NVARCHAR(40) ;
	DECLARE @prenom_FK NVARCHAR(40) ;
	DECLARE	@daten_FK DATETIME;
	DECLARE @immatriculation_FK VARCHAR(9);
	DECLARE @dated_FK DATETIME;
	DECLARE @idAbonnement_FK BIGINT;

	/*Création d'un cuseur sur les lignes de la table de jointure ConducteursSecondaires correspondantes au conducteur*/
	DECLARE Cursseur_ConducteurSecondaire CURSOR LOCAL FOR
		SELECT nom_FK, prenom_FK, daten_FK, immatriculation_FK, dated_FK, idAbonnement_FK
		FROM ConducteursSecondaires 
		WHERE nom_FK LIKE @nom ANd prenom_FK LIKE @prenom AND daten_FK = @daten;
	OPEN Cursseur_ConducteurSecondaire
	
	FETCH NEXT FROM Cursseur_ConducteurSecondaire
	INTO @nom_FK, @prenom_FK, @daten_FK, @immatriculation_FK, @dated_FK, @idAbonnement_FK

	IF @@FETCH_STATUS <> 0
	BEGIN
		PRINT 'Aucune location avec comme conducteur secondaire :'+ ' '+ CAST(@nom_FK AS VARCHAR) + ' ' + CAST(@prenom_FK AS VARCHAR) + ' né le ' + CAST(@daten_FK AS VARCHAR)
	END
	DECLARE @result INT;
	WHILE @@FETCH_STATUS = 0
	BEGIN
		EXEC @result = ps_suppression_conducteurs_secondaires @nom_FK, @prenom_FK, @daten_FK, @immatriculation_FK, @dated_FK, @idAbonnement_FK;
		IF @result =0
		BEGIN
			ROLLBACK ; 
			RETURN 0;
		END
	END
	CLOSE Cursseur_ConducteurSecondaire;
	DEALLOCATE Cursseur_ConducteurSecondaire;

	IF EXISTS(
	SELECT * 
	FROM dbo.ConducteurSecondaire cs
	WHERE cs.daten=@daten AND cs.nom=@nom AND cs.prenom=@prenom)
	BEGIN
		DELETE FROM ConducteurSecondaire
		WHERE nom=@nom AND prenom=@prenom AND daten=@daten;
		PRINT 'le conducteur ' + CAST(@Nom AS VARCHAR) + ' ' + CAST(@Prenom AS VARCHAR) + ' né le ' + CAST(@daten AS VARCHAR) + ' a bien été supprimé'
		RETURN 1;
	END
END
GO
